1
Lezione 7: Apprendimento Trasferito – Sfruttare la Conoscenza
EvoClass-AI002Lezione 7
00:00

Benvenuto nella Lezione 7, in cui presentiamo Apprendimento Trasferito. Questa tecnica consiste nel riutilizzare un modello di apprendimento profondo già addestrato su un vasto dataset generico (come ImageNet) e adattarlo per risolvere un compito nuovo e specifico (come la nostra sfida FoodVision). È fondamentale per ottenere risultati all'avanguardia in modo efficiente, soprattutto quando i dataset etichettati sono limitati.

1. Il Potere dei Pesi Pre-addestrati

I reti neurali profonde imparano le caratteristiche in modo gerarchico. I livelli inferiori imparano concetti fondamentali (bordi, angoli, texture), mentre i livelli più profondi combinano queste informazioni in concetti complessi (occhi, ruote, oggetti specifici). L'idea chiave è che le caratteristiche fondamentali apprese all'inizio sono universalmente applicabiliapplicabili in gran parte dei domini visivi.

Componenti dell'Apprendimento Trasferito

  • Compito di Origine: Addestramento su 14 milioni di immagini e 1000 categorie (ad esempio, ImageNet).
  • Compito Obiettivo: Adattamento dei pesi per classificare un dataset molto più piccolo (ad esempio, le nostre categorie specifiche FoodVision).
  • Componente Sfruttato: La grande maggioranza dei parametri della rete — gli strati di estrazione delle caratteristiche — viene riutilizzata direttamente.
Vantaggi in Efficienza
L'apprendimento trasferito riduce drasticamente due principali barriere risorsa: Costo Computazionale (si evita di addestrare l'intero modello per giorni) e Richiesta di Dati (è possibile ottenere alta accuratezza con centinaia, piuttosto che migliaia, di esempi di addestramento).
train.py
TERMINALEbash — pytorch-env
> Pronto. Clicca su "Esegui" per eseguire.
>
ISPEZIONATORE DI TENSORI In tempo reale

Esegui il codice per ispezionare i tensori attivi
Domanda 1
Qual è il principale vantaggio nell'utilizzare un modello pre-addestrato su ImageNet per un nuovo compito visivo?
Richiede meno dati etichettati rispetto all'addestramento da zero.
Elimina completamente la necessità di qualsiasi dato di addestramento.
Garantisce immediatamente una precisione del 100%.
Domanda 2
In un flusso di lavoro di apprendimento trasferito, quale parte della rete neurale è di solito bloccata?
L'ultimo strato di output (testa del classificatore).
La base convoluzionale (strati di estrazione delle caratteristiche).
L'intera rete è di solito non bloccata.
Domanda 3
Quando si sostituisce la testa del classificatore in PyTorch, quale parametro devi determinare per primo dal basamento bloccato?
La dimensione del batch dei dati obiettivo.
La dimensione dell'input delle caratteristiche (le dimensioni di uscita dell'ultimo strato convoluzionale).
Il numero totale di parametri del modello.
Sfida: Adattamento della Testa del Classificatore
Progettazione di un nuovo classificatore per FoodVision.
Carichi un modello ResNet pre-addestrato su ImageNet. Il suo ultimo strato di caratteristiche produce un vettore di dimensione 512. Il tuo progetto 'FoodVision' ha 7 categorie alimentari distinte.
Passo 1
Qual è la dimensione richiesta in ingresso per il nuovo strato lineare addestrabile?
Soluzione:
La dimensione in ingresso delle caratteristiche deve corrispondere all'uscita dello strato base bloccato.
Dimensione: 512.
Passo 2
Qual è il frammento di codice PyTorch per creare questo nuovo strato di classificazione (supponendo che l'output sia denominato `new_layer`)?
Soluzione:
La dimensione di uscita di 512 è l'input, e il conteggio delle classi 7 è l'output.
Codice: new_layer = torch.nn.Linear(512, 7)
Passo 3
Qual è la dimensione richiesta in uscita per il nuovo strato lineare?
Soluzione:
La dimensione in uscita delle caratteristiche deve corrispondere al numero di classi obiettivo.
Dimensione: 7.